Customer{
  Assert.hasText(lastName);
  Assert.hasText(emailAddress);
  this.emailAddress=emailAddress;
}
Customer{ }
add{ }
getFirstName{ }
getLastName{ }
setLastName{ }
getEmailAddress{ }
setEmailAddress{ }
getAddresses{
  return Collections.unmodifiableSet(addresses);
}
hasAddress{
  return addresses.contains(address);
}
toString{
  return String.format("%s %s <%s>",firstName,lastName,emailAddress);
}
